2023年10月12日
川俣晶の縁側ソフトウェア技術雑記 total 690 count

Blazor WebAssemblyで動いていたRazorライブラリがMaui Blazorに持って行ったら動かない

Written By: 川俣 晶連絡先

問題 §

 Blazor WebAssemblyで動いていたRazorライブラリがある。

 これを、.NET Maui Blazorアプリに組み込んだところ、実行すると以下のようなエラーになって動作しない。

  • blazor.webview.js:1 Cannot provide a value for property 'Http' on type '~'. There is no registered service of type 'System.Net.Http.HttpClient'.

原因 §

Blazor WebAssemblyではDIによりHttpがインジェクションされているが、.NET Maui Blazorアプリではされていないから。(Blazor Serverでもされていないらしい)

解決 §

*.razorファイルに含まれる以下の行を全て探して削除する。

  • @inject HttpClient Http

Httpを利用していたコードは全てエラーになるが、それはnew HttpClient()の値を利用するように修正する。

これで、どちらのプロジェクトでも動くようになる。